﻿ 
namespace Core.Items.Modules
{
    /*

		MetaGroup                      = Weapons
		Group                          = Lasers
		Size                           = Small
		Module                         = niani light hcl laser
		CpuUsage                       = 24.00 TF
		ReactorUsage                   = 46.00 RP
		Type                           = Active
		Slot                           = Turret
		TechnologicalLevel             = T3-
		Mass                           = 135.00 kg
		PackedVolume                   = 0.25 U
		Volume                         = 0.50 U
		AccumulatorConsumption         = 4.00 AP
		CycleTime                      = 3.00 sec
		OptimalRange                   = 160 m
		Falloff                        = 100 m
		AmmoChargeType                 = Small energy cells
		AmmoChargeCapacity             = 150 pcs
		Damage                         = 90 %
		HitDispersion                  = 3.00 •
    */

    using System;
    using Base;
    using Contracts.Enums;
    using Contracts.Interfaces;
    using Extensions;
    using Features;
    
    /// <summary>
    /// Niani light HCL laser module class
    /// </summary>
    /// <remarks>File generated on 31/10/2011 16:00:56</remarks>
    public sealed class NianiLightHclLaser : ModuleBase
    {
        /// <summary>
        /// Create a new instance of the <see cref="NianiLightHclLaser"/> class.
        /// </summary>
        public NianiLightHclLaser()
            : base(
            "Niani light HCL laser",
            "",
            ModuleMetaGroupsEnum.Weapons,
            ModuleGroupsEnum.Lasers,
            TechnologyLevelsEnum.Niani,
            SizesEnum.Small,
            new LazyFeature[] { 
				new LazyFeature(typeof(WeaponCpuUsage<double>),24.00),
				new LazyFeature(typeof(WeaponReactorUsage<double>),46.00),
				new LazyFeature(typeof(ModuleMass<double>),135.00),
				new LazyFeature(typeof(WeaponAccumulatorUsage<double>),4.00),
				new LazyFeature(typeof(AmmunitionType<AmmunitionTypesEnum>),AmmunitionTypesEnum.SmallEnergyCells),
				new LazyFeature(typeof(AmmoCapacity<double>),150),
				new LazyFeature(typeof(SmallLaserCycleTime<double>),3.00),
				new LazyFeature(typeof(SmallLaserOptimal<double>),160),
				new LazyFeature(typeof(SmallLaserFalloff<double>),100),
				new LazyFeature(typeof(SmallLaserDamage<double>),90),
				new LazyFeature(typeof(SmallLaserHitDispersion<double>),3.00), },
            null,
            new IModifier[] { 
				new Modifier( FeatureTypesEnum.Robot, FeaturesEnum.RobotMass, 135.00 ){ IsVisible = false }, } )
        {
        }

        /// <summary>
        /// Obtains the activation type
        /// </summary>
        public override ModuleActivationTypesEnum ActivationType
        {
            get { return ModuleActivationTypesEnum.Active; }
        }
        /// <summary>
        /// Obtains the module slot group 
        /// </summary>
        public override SlotGroupsEnum SlotGroup
        {
            get { return SlotGroupsEnum.Chassis; }
        }
        /// <summary>
        /// Obtains the module slot type 
        /// </summary>
        public override SlotTypesEnum SlotType
        {
            get { return SlotTypesEnum.Turret; }
        }
    }
}